基于docker部署rabbitMQ,php |
您所在的位置:网站首页 › docker php 扩展 › 基于docker部署rabbitMQ,php |
RabbitMQ部署
简介:
RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。 消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。 参考文献 : https://www.cnblogs.com/sgh1023/p/11217017.html RabbitMQ的AMQP协议。RabbitMQ采用了AMQP协议,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。 注意:生产者在生产消息时,如果不存在指定队列,或者没有创建队列,或者队列存在但消息路由键和交换机与队列绑定的键 (路由规则 路 )不一致(直连交换机必须一致) 不 ,则消息会被交换机丢弃。 我们完全可以直接使用 Connection 就能完成信道的工作,为什么还要引入信道呢? 试想这样一个场景, 一个应用程序中有很多个线程需要从 RabbitMQ 中消费消息,或者生产消息,那么必然需要建立很多个 Connection,也就是许多个 TCP 连接。然而对于操作系统而言,建立和销毁 TCP 连接是非常昂贵的开销,如果遇到使用高峰,性能瓶颈也随之显现。 RabbitMQ 采用 TCP 连接复用的方式,不仅可以减少性能开销,同时也便于管理 。 rabbitmq安装1.Docker拉取rabbitmq镜像: docker pull rabbitmq2.构建rabbitmq容器 docker run -p 5672:5672 -p 15672:15672 -d --name rabbitmq \ -v /docker/rabbitmq:/var/lib/rabbitmq \ --privileged=true \ --hostname myRabbitmq \ -e RABBITMQ_DEFAULT_VHOST=my_vhost \ -e RABBITMQ_DEFAULT_USER=admin \ -e RABBITMQ_DEFAULT_PASS=admin rabbitmq:latest3.进入rabbitmq容器安装可视化界面:rabbitmq_management rabbitmq-plugins enable rabbitmq_management4.查看防火墙是否关闭,服务器查看安全组端口是否开放 systemctl status firewalld systemctl stop firewalld5.访问 youhost:15672 可以看到rabbitmq可视化工具的登陆界面,使用上面设置的账号密码登陆即可。 1.拉取amqp-1.10.2.tgz包 http://pecl.php.net/package/amqp/1.10.22.拉取rabbitmq-c.tar.gz包 https://github.com/alanxz/rabbitmq-c/releases/download/v0.8.0/rabbitmq-c-0.8.0.tar.gz3.解压两个安装包,并把两个包上传到 php 的 docker容器中(自定义一个位置上传,如:/package) tar -zvxf amqp-1.11.0.tgz tar -zvxf rabbitmq-c-0.8.0.tar.gz docker cp amqp-1.11.0 php:/package/amqp-1.11.0 docker cp rabbitmq-c-0.8.0 php:/package/rabbitmq-c-0.8.04.进入php-docker容器安装rabbitmq-c依赖 注:如需药加载编译需要的gcc环境 apt -y install gcc autoconf automake make libpcre3 libpcre3-dev openssl libssl-dev zlib1g-dev cd rabbitmq-c-0.8.0 ./configure --prefix=/usr/local/rabbitmq-c echo $? make && make install1.先进入php容器安装amqp扩展 这里使用源码编译安装amqp扩展 -> 准备扩展包 ->进入安装目录 cd amqp-1.11.0 phpize ./configure --with-php-config=/usr/local/bin/php-config --with-amqp --with-librabbitmq-dir=/usr/local/rabbitmq-c/2.先从 rabbitmq-c 编译的依赖中复制 amqp_ssl_socket.h 到 **amqp-1.10.2 **中 cd /package/rabbitmq-c-0.8.0/librabbitmq cp amqp_ssl_socket.h /package/amqp-1.11.0/3.回到 amqp-1.10.2 中执行编译 make && make install4.php.ini中添加配置 find / -name php.ini extension=amqp.so到此,安装成功 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |